哈囉大家好,我是古古
上一篇文章有先簡短提到了 Google Cloud 中的運算服務有哪些,不過在開始介紹 Google Cloud 中的運算服務之前,大家需要先具備 IaaS、PaaS、FaaS、以及 SaaS 的概念
所以這一篇文章,就會先來介紹 IaaS、PaaS、FaaS、以及 SaaS 的差別
IaaS 是 Infrastructure as a Service 的簡寫,中文翻譯為「基礎結構即服務」,IaaS 的意思是指「你能夠使用這個服務來創建 VM (Virtual Machine, 虛擬機)」
所以假設有一個雲端服務是 IaaS,那就表示他可以讓我們在上面自由的創建 VM,然後我們可以在該 VM 中安裝喜歡的 Java 版本、或是安裝喜歡的 Python 版本,然後我們也可以在這個 VM 裡面自由的運行想運行的程式,完全不受到任何限制
所以只要是直接提供一台 VM 給你自由運用的服務,即是屬於 IaaS 的一種,也就是 Infrastructure as a Service
PaaS 是 Platform as a Service 的簡寫,中文翻譯為「平台即服務」,而到了 PaaS 這裡之後,就沒有了 VM 的概念
假設有一個雲端服務是 PaaS,那麼 他只會要求你上傳你的程式碼 ,然後他就會像變魔法一樣,直接幫你把這個程式運行起來了,magic!
所以當你使用了 PaaS 的服務之後,你就再也碰不到 VM 層(或是非常難),雲端服務商會把你的程式運行在一個「容器 Container」裡面,你只要告訴他你要幾個容器就好,剩下的雲端服務商會全部包辦
因此 PaaS 也可以稱為是懶人部署法,你不需要像上面的 IaaS 一樣,自己去搞 VM 然後自己安裝 Java 版本,你要做的,就是寫好程式,上傳,然後剩下的雲端服務商會全部幫你搞定,世界和平!
從上面的 IaaS 和 PaaS 的介紹,大概可以感覺得出來 IaaS 和 PaaS 是一個對立的關係
IaaS 就是直接丟一個最原始的 VM 給你,你愛蓋什麼就蓋什麼,有點像是給你一塊地你自己自由發揮
而 PaaS 則像是一棟蓋好的大樓,裡面的設施非常先進漂亮,你只要提著你的行李箱就可以入住,但缺點就是你不能隨便更動大樓裡面的管線,只能照著他們既定的規則走
FaaS 是 Function as a Service 的簡寫,中文翻譯為「函式即服務」或是「功能即服務」
相較於 IaaS 和 PaaS,FaaS 其實是近十年才被提出來的新概念,FaaS 雖然也是屬於 XaaS 的一員,但其實他和上面的 IaaS 和 PaaS 沒什麼關係
FaaS 的概念,是 「把程式當成方法來執行」,即是讓程式不用一直運行著,而是當有請求來時,就快速啟動這個程式,然後請求走的時候就 shutdown 這個程式,簡單的說就是不讓程式一直啟動著,而是有需要的時候才開啟他,這就是 FaaS 的概念
大家也可以想像一下,一般我們在寫後端程式的時候,通常就是把程式運行起來,然後這個程式就會一直運行著,等著去接收前端的請求,即使沒有前端的請求過來,這個程式仍舊會一直運行著
而 FaaS 即是想要提出一個新概念,就是只有當前端發請求過來的時候,才會去運行起這個後端程式去處理前端的請求,當請求執行完畢後,就關掉這個後端程式,不讓他在那邊空轉,把「程式」當成是一個「方法」來運行,即是 FaaS 的概念
也因為如此,FaaS 也得到另一個名詞的稱呼,即是 Serverless(無伺服器運算)
能夠被稱為 Serverless,是因為從定義上來說,我們是沒有長期運行一個 server 的,而是前端請求來才啟動這個 server,前端請求走了這個 server 也被關掉了,並沒有一台 server 是傻傻運行著在等著前端的請求,因此才稱為 Serverless(無伺服器)
所以 FaaS 和 Serverless,他們指的其實都是同一件事情,就是把程式當成方法一樣來使用,用完即丟
補充:我當初學到這邊的時候,有點不能接受 Serverless 的定義😂,因為他就是有運行 server 啊!只是時間很短我們看不見而已!!不過這邊的定義就是這樣,所以大家可以先接受就好,FaaS 就是 Serverless,Serverless 就是 FaaS,他們指的是同一件事情
SaaS 是 Software as a Service 的簡寫,中文翻譯為「軟體即服務」
SaaS 其實就是泛指 Gmail、Google Drive 這種給一般大眾用的軟體,跟工程師沒有什麼特別的關係,通常只是在提到 IaaS、PaaS 時,會一起拿出來被介紹到
總和上面的介紹,可以將 XaaS 們統整成下面這張圖片,其中虛線下方所表示的,就是實際的雲端服務應用,供大家參考
這篇文章分別介紹了 IaaS、PaaS、FaaS、以及 SaaS 的概念,並且也比較了這些服務的優缺點,讓大家對 XaaS 中的成員們有更多的認識
那麼從下一篇文章開始,我們就會回到 Google Cloud 的運算服務主題上,開始介紹 Google Cloud 中的 IaaS 運算服務:Compute Engine,那我們就下一篇文章見啦!